package com.demo5;

public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        student.lunch();
        System.out.println("===========");
        OverseaStudent overseaStudent = new OverseaStudent();
        overseaStudent.lunch();
    }
}
class Person{
    public void eat(){
        System.out.println("吃米饭，吃菜！");
    }
    public void drink(){
        System.out.println("喝水！");
    }
}

class Student extends Person{
    public void lunch(){
        //先在本类中查看eat和drink方法，就会调用子类的，如果没有，就会调用从父类中继承下来的eat和drink方法
        this.eat();
        this.drink();
        //直接调用父类的eat和drink方法
        super.eat();
        super.drink();
    }
}

class OverseaStudent  extends Person{
    public void lunch(){
        //先在本类中查看eat和drink方法，就会调用子类的，如果没有，就会调用从父类中继承下来的eat和drink方法
        this.eat();
        this.drink();
        //直接调用父类的eat和drink方法
        super.eat();
        super.drink();
    }

    //应用场景:当父类中方法，不能满足子类现在的需求时，我们就需要把这个方法进行重写
    //注意:子类中重写的方法上面需要加上 @Override
    @Override
    public void eat(){
        System.out.println("吃意大利面！");
    }
    @Override
    public void drink(){
        System.out.println("喝可乐！");
    }
}
